package com.bocai.kelalacar;


import android.app.Application;

import com.bocai.kelalacar.net.LocalModel;
import com.bocai.kelalacar.net.OkhttpModule;
import com.bocai.kelalacar.net.RetrofitModule;
import com.bocai.kelalacar.ui.car.main.act.PublishInformationActivity;
import com.bocai.kelalacar.ui.car.main.component.MainComponent;
import com.bocai.kelalacar.ui.car.main.component.MainListComponent;
import com.bocai.kelalacar.ui.car.main.component.MessageComponent;
import com.bocai.kelalacar.ui.car.main.component.ModifyAddressComponent;
import com.bocai.kelalacar.ui.car.main.component.PublishInformationComponent;
import com.bocai.kelalacar.ui.car.main.component.TravelDetailComponent;
import com.bocai.kelalacar.ui.car.main.module.MainListModule;
import com.bocai.kelalacar.ui.car.main.module.MainModule;
import com.bocai.kelalacar.ui.car.main.module.MessageModule;
import com.bocai.kelalacar.ui.car.main.module.ModifyAddressModule;
import com.bocai.kelalacar.ui.car.main.module.PublishInformationModule;
import com.bocai.kelalacar.ui.car.main.module.TravelDetailModule;
import com.bocai.kelalacar.ui.car.order.component.MyOrderComponent;
import com.bocai.kelalacar.ui.car.order.module.MyOrderModule;
import com.bocai.kelalacar.ui.car.set.component.AboutAppComponent;
import com.bocai.kelalacar.ui.car.set.component.AddCarComponent;
import com.bocai.kelalacar.ui.car.set.component.AddDriverComponent;
import com.bocai.kelalacar.ui.car.set.component.CertificationComponent;
import com.bocai.kelalacar.ui.car.set.component.ChangePhoneComponent;
import com.bocai.kelalacar.ui.car.set.component.MyWalletComponent;
import com.bocai.kelalacar.ui.car.set.component.PwSetComponent;
import com.bocai.kelalacar.ui.car.set.component.ServiceMarginComponent;
import com.bocai.kelalacar.ui.car.set.component.SetComponent;
import com.bocai.kelalacar.ui.car.set.component.WithdrawTypeComponent;
import com.bocai.kelalacar.ui.car.set.module.AboutAppModule;
import com.bocai.kelalacar.ui.car.set.module.AddCarModule;
import com.bocai.kelalacar.ui.car.set.module.AddDriverModule;
import com.bocai.kelalacar.ui.car.set.module.CertificationModule;
import com.bocai.kelalacar.ui.car.set.module.ChangePhoneModule;
import com.bocai.kelalacar.ui.car.set.module.MyWalletModule;
import com.bocai.kelalacar.ui.car.set.module.PwSetModule;
import com.bocai.kelalacar.ui.car.set.module.ServiceMarginModule;
import com.bocai.kelalacar.ui.car.set.module.SetModule;
import com.bocai.kelalacar.ui.car.set.module.WithdrawTypeModule;
import com.bocai.kelalacar.ui.driver.main.component.DriverPublishComponent;
import com.bocai.kelalacar.ui.driver.main.module.DriverPublishModule;
import com.bocai.kelalacar.ui.driver.set.component.DriverCertificationComponent;
import com.bocai.kelalacar.ui.driver.set.module.DriverCertificationModule;

import javax.inject.Singleton;

import dagger.Component;


/**
 * @version 1.0.0 <br/>
 */
@Singleton
@Component(modules = {AppModule.class, LocalModel.class, OkhttpModule.class,
        RetrofitModule.class,
})
public interface AppComponent {

    Application getApplication();

    MainComponent addSub(MainModule homeModel);

    PwSetComponent addSub(PwSetModule module);

    SetComponent addSub(SetModule module);

    ChangePhoneComponent addSub(ChangePhoneModule module);

    DriverCertificationComponent addSub(DriverCertificationModule module);

    CertificationComponent addSub(CertificationModule module);

    AddCarComponent addSub(AddCarModule module);

    AddDriverComponent addSub(AddDriverModule module);

    DriverPublishComponent addSub(DriverPublishModule module);

    ServiceMarginComponent addSub(ServiceMarginModule module);

    PublishInformationComponent addSub(PublishInformationModule module);

    MyWalletComponent addSub(MyWalletModule module);

    WithdrawTypeComponent addSub(WithdrawTypeModule module);

    TravelDetailComponent addSub(TravelDetailModule module);

    MyOrderComponent addSub(MyOrderModule module);

    MainListComponent addSub(MainListModule mainListModule);

    MessageComponent addSub(MessageModule module);

    AboutAppComponent addSub(AboutAppModule module);

    ModifyAddressComponent addSub(ModifyAddressModule module);



}
